﻿Imports sonicERPDAL.DAL
Imports sonicERPinfo
Imports System.Data.SqlClient



Public Class nivelUsuarioDAL
    Dim dal As New DAL
    Public Function pesquisanomenivelusuario(ByVal tabela As sonicERPinfo.Tabelainfo) As DataView
        Dim select_ As String = "SELECT  NIVEL FROM NIVELUSUARIO  WHERE NOME LIKE '%' + @NIVEL + '%' ORDER BY NIVEL ASC "
        Dim par As New ArrayList
        par.Add("@NIVEL")
        Dim entidade As New ArrayList
        entidade.Add(tabela.usuario.nivel)
        Return dal.SqlDataAdapter(select_, False, par, entidade, True)

    End Function

    Public Sub insert(ByVal nivel As sonicERPinfo.NivelUsuarioInfo)

        Try


            Dim entidade As New ArrayList
            entidade.Add(nivel.idusuario)
            entidade.Add(nivel.nivel)

            Dim parameter As New ArrayList
            parameter.Add("@idusuario")
            parameter.Add("@nivel")

            Dim INSERT As String = "INSERTNIVELUSUARIO"


            Dim dal As New DAL
            dal.SQLExecuteNonQuery(INSERT, True, parameter, entidade, True)
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Sub


    Public Sub update(ByVal nivel As NivelUsuarioInfo)
        Try


            Dim entidade As New ArrayList
            entidade.Add(nivel.id)
            entidade.Add(nivel.idusuario)
            entidade.Add(nivel.nivel)

            Dim parameter As New ArrayList
            parameter.Add("@idnivelusuario")
            parameter.Add("@idusuario")
            parameter.Add("@nivel")





            Dim update As String = "UPDATENIVELUSUARIO"

            'Dim update As String = String.Format("UPDATE   NivelUsuario" & vbCrLf & _
            '  " SET nivel = @nivel,  dt_cadastro = @dt_cadastro" & vbCrLf & _
            '    "WHERE     id = @id")

            Dim dal As New DAL
            dal.SQLExecuteNonQuery(update, True, parameter, entidade, True)
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Sub
    Public Sub excluir(ByVal nivel As NivelUsuarioInfo)
        Try

            Dim entidade As New ArrayList
            entidade.Add(nivel.id)
            entidade.Add(nivel.idusuario)
            entidade.Add(nivel.nivel)


            Dim parameter As New ArrayList
            parameter.Add("@idnivelusuario")
            parameter.Add("@idusuario")
            parameter.Add("@nivel")

            Dim update As String = "DELETENIVELUSUARIO"

            ''  Dim update As String = String.Format("UPDATE nivelUsuario  SET deletado = @deletado ,dt_cadastro = @dt_cadastro   WHERE  id = @id")

            Dim dal As New DAL
            dal.SQLExecuteNonQuery(update, True, parameter, entidade, True)
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Sub
    Public Function lista(ByVal nivel As NivelUsuarioInfo)

        Try
            Dim select_ As String = "SELECTNIVEL"

            Dim dal As New DAL


            Dim par As New ArrayList
            par.Add("@nivel")
            par.Add("@dtinicio")
            par.Add("@dtfinal")
            Dim intidade As New ArrayList
            intidade.Add(nivel.nivel)
            intidade.Add(nivel.dtinicio.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            intidade.Add(nivel.dt_fim.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            ' intidade.Add(nivel.dtinicio)
            'intidade.Add(nivel.dt_fim)


            Return dal.SqlDataAdapter(select_, True, par, intidade, True)



        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try

    End Function

    Public Function lista(ByVal nivel As NivelUsuarioInfo, ByVal sobrecarga As Boolean)

        Try
            Dim select_ As String = "SELECTNIVEL"

            Dim dal As New DAL


            Dim par As New ArrayList
            par.Add("@nivel")
            par.Add("@dtinicio")
            par.Add("@dtfinal")
            Dim Entidade As New ArrayList
            Entidade.Add(nivel.nivel)
            Entidade.Add(nivel.dtinicio.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            Entidade.Add(nivel.dt_fim.Value.Date.ToString("yyyy/MM/dd HH:mm:ss"))
            Dim objetos As New ArrayList
            objetos.Add("id")
            objetos.Add("nivel")
            objetos.Add("dt_cadastro")
            Return dal.SqlEcuteReader(select_, True, par, Entidade, True, 3, nivel, objetos, False)



        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try

    End Function

    Public Function Getlogs(ByVal tabela As Tabelainfo)

        Dim par As New ArrayList
        par.Add("@idtabela")
        par.Add("@nometabela")
        Dim enti As New ArrayList
        enti.Add(tabela.Logs.idtabela)
        enti.Add(tabela.Logs.nometabela)

        Dim __select As String = " SELECT XmlTabela.value ('(/nivelUsuarios/TipoComando/node())[1]','nvarchar(MAX)') AS TipoComando," +
"XmlTabela.value ('(/nivelUsuarios//id/node())[1]','nvarchar(50)') AS id,   " +
"XmlTabela.value ('(/nivelUsuarios//nivel/node())[1]','nvarchar(50)') AS nivel," +
"XmlTabela.value ('(/nivelUsuarios//idusuario/node())[1]','nvarchar(50)') AS idusuario, " +
"XmlTabela.value ('(/nivelUsuarios//dt_cadastro/node())[1]','nvarchar(50)') AS dt_cadastro, " +
"XmlTabela.value ('(/nivelUsuarios//dtinicio/node())[1]','nvarchar(50)') AS dtinicio, " +
"XmlTabela.value ('(/nivelUsuarios//dtinicio/node())[1]','nvarchar(50)') AS dt_fim  " +
"FROM Logs WITH (NOLOCK) WHERE idtabela  = @idtabela AND NomeTabela = @nometabela"


        Return dal.SqlDataAdapter(__select, False, par, enti, True)
    End Function



End Class

